/**
 * Copyright (c) 2003 安徽电信工程有限责任公司
 */
package com.ahccc.codegenerator.entity;

import java.io.Serializable;
import java.util.Date;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 任务表
 * </p>
 *
 * @author lichunqing
 * @date 2019-03-15
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Task implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    /**
     * group格式：com.{公司/BU }.业务线 [.子业务线]
     * {公司/BU} 例如： alibaba/taobao/tmall/aliexpress
     * 业务线 例如：jstorm / dubbo
     * com.taobao.jstorm 或 com.alibaba.dubbo.register
     * com.ahccc.acp
     */
    private String groupId;

    /**
     * Artifact 格式：产品线名-模块名
     * dubbo-client / fastjson-api / jstorm-tool
     * acp-emergencyalert
     */
    private String artifactId;

    /**
     * 模块名 emergencyalert
     */
    private String moduleName;

    /**
     * com.ahccc.emergencyalert
     */
    private String packageName;

    /**
     * 项目名称 emergencyalert / emergencyalert-server / emergencyalert-client
     */
    private String name;

    /**
     *
     */
    private String description;

    /**
     *
     */
    private String author;


    private String framework;


    /**
     * 数据库类型
     */
    private String dbType;

    /**
     * ip
     */
    private String dbHost;

    /**
     * port
     */
    private String dbPort;

    /**
     * 数据库名称
     */
    private String dbSchema;

    /**
     * 用户名
     */
    private String dbUsername;

    /**
     * 数据库密码
     */
    private String dbPassword;

    /**
     * 任务创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 任务更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

}
